//
//  PKPayUtils_Alipay.swift
//  Panku
//
//  Created by mac on 2017/4/26.
//  Copyright © 2017年 Monster. All rights reserved.
//

import UIKit

class PKPayUtils_Alipay: PKPayUtils {
    //网络请求方法 该方法必须要重写
    func pay() -> Void{
        
        //将商品信息赋予AlixPayOrder的成员变量
        let order = OrderModel()
        
        // NOTE: app_id设置
        order.app_id = ""
        
        // NOTE: 支付接口名称
        order.method = "alipay.trade.app.pay"
        
        // NOTE: 参数编码格式
        order.charset = "utf-8"
        
        // NOTE: 当前时间点
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
        order.timestamp = formatter.string(from: Date())
        
        // NOTE: 支付版本
        order.version = "1.0"
        
        // NOTE: sign_type设置
        order.sign_type = "RSA"
        
        // NOTE: 商品数据
        order.biz_content = BizModel()
        order.biz_content!.body = "我是测试数据"
        order.biz_content!.subject = "1"
//        order.biz_content!.out_trade_no = [self generateTradeNO]; //订单ID（由商家自行制定）
        order.biz_content!.timeout_express = "30m" //超时时间设置
        
        order.biz_content!.total_amount = NSString(format: "%.2f", 0.01) as String; //商品价格
        
        //将商品信息拼接成字符串
//        NSString *orderInfo = [order orderInfoEncoded:NO];
//        NSString *orderInfoEncoded = [order orderInfoEncoded:YES];
//        NSLog(@"orderSpec = %@",orderInfo);
//        
//        // NOTE: 获取私钥并将商户信息签名，外部商户的加签过程请务必放在服务端，防止公私钥数据泄露；
//        //       需要遵循RSA签名规范，并将签名字符串base64编码和UrlEncode
//        id<DataSigner> signer = CreateRSADataSigner(privateKey);
//        NSString *signedString = [signer signString:orderInfo];
//        
//        // NOTE: 如果加签成功，则继续执行支付
//        if (signedString != nil) {
//            //应用注册scheme,在AliSDKDemo-Info.plist定义URL types
//            NSString *appScheme = @"alisdkdemo";
//            
//            // NOTE: 将签名成功字符串格式化为订单字符串,请严格按照该格式
//            NSString *orderString = [NSString stringWithFormat:@"%@&sign=%@",
//                orderInfoEncoded, signedString];
//            
//            // NOTE: 调用支付结果开始支付
//            [[AlipaySDK defaultService] payOrder:orderString fromScheme:appScheme callback:^(NSDictionary *resultDic) {
//                NSLog(@"reslut = %@",resultDic);
//                }];
//        }
    }
    
    // factory
    static func make() -> PKPayUtils{
        return PKPayUtils_Alipay()
    }
}
